//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#ifndef _ListAmylogenic_h__
#define	_ListAmylogenic_h__
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#include "libraries.h"
#include "AmylogenicData.h"
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
class ListAmylogenic {
    
  private:

    String                      *filenameFASTASeq;
    String                      *filenameAmylogenicSeq;

    String                      *filenameFASTASeqShuffle;
    String                      *filenameAmylogenicSeqShuffle;

    String                      *filenameOut;

    TListE <AmylogenicData>     *listAmylogenicData;

    double                       frequencyAA[AMOUNTAA];
    
  protected:
      
    bool                        IsCompleteData(int);
    
    bool                        CleanFrequencyAA(void);
    
    bool                        AssignFrequencyAA(double*);
    bool                        SumFrequencyAA(double*);

  public:
      
    ListAmylogenic();
    ListAmylogenic(const ListAmylogenic&);
    ListAmylogenic(const ListAmylogenic*);
    
    ~ListAmylogenic();

    void                        FilenameFASTASeq(String*);
    void                        FilenameAmylogenicSeq(String*);

    void                        FilenameFASTASeqShuffle(String*);
    void                        FilenameAmylogenicSeqShuffle(String*);

    void                        FilenameOut(String*);

    void                        ListAmylogenicData(TListE <AmylogenicData>*);

    String*                     FilenameFASTASeq(void);
    String*                     FilenameAmylogenicSeq(void);

    String*                     FilenameFASTASeqShuffle(void);
    String*                     FilenameAmylogenicSeqShuffle(void);

    String*                     FilenameOut(void);

    TListE <AmylogenicData>*    ListAmylogenicData(void);

    bool                        LoadData(void);

    bool                        GetListSeqAmylogenicRegions(String*);
    bool                        GetListSeqNoAmylogenicRegions(String*);

    bool                        GetListSeqShuffleAmylogenicRegions(String*);
    bool                        GetListSeqShuffleNoAmylogenicRegions(String*);

    bool                        GetListSeqAmylogenicShuffleNoAmylogenicRegions(String*);
    bool                        GetListSeqNoAmylogenicShuffleAmylogenicRegions(String*);
    
    bool                        GetListSeqAmylogenicShuffleAmylogenicRegions(String*);
    bool                        GetListSeqNoAmylogenicShuffleNoAmylogenicRegions(String*);
    
    bool                        GetFreqAAListSeqAmylogenicRegions(String*);
    bool                        GetFreqAAListSeqNoAmylogenicRegions(String*);

    bool                        GetFreqAAListSeqShuffleAmylogenicRegions(String*);
    bool                        GetFreqAAListSeqShuffleNoAmylogenicRegions(String*);

    bool                        GetFreqAAListSeqAmylogenicShuffleNoAmylogenicRegions(String*);
    bool                        GetFreqAAListSeqNoAmylogenicShuffleAmylogenicRegions(String*);
    
    bool                        GetFreqAAListSeqAmylogenicShuffleAmylogenicRegions(String*);
    bool                        GetFreqAAListSeqNoAmylogenicShuffleNoAmylogenicRegions(String*);
    
    bool                        GetFreqPercentAmylogenicRegions(String*);
    bool                        GetPercentOfSeqAmylogenicRegions(String*);
    bool                        GetPercentOfSeqShuffleAmylogenicRegions(String*);
    bool                        StatisticalOutComplete(String*);
    
    void                        DeleteIncompleteData(void);    

};
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#endif
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
